package com.yuetong.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuetong.common.annotation.Excel;
import com.yuetong.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 合同信息，用于存储与场所相关的合同信息对象 yt_contract_info
 *
 * @author  卓晓君
 * @date 2025-03-07
 */
public class YtContractInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 合同标题 */
    @Excel(name = "合同标题")
    private String title;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private String status;

    /** 合同ID */
    private Long contractId;


    /** 场所ID */
    @Excel(name = "场所ID")
    private Long placeId;

    /** 开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractAmount;

    /** 维护频率 */
    @Excel(name = "维护频率")
    private String maintenanceFrequency;

    /** 甲方信息 */
    @Excel(name = "甲方信息")
    private String partyA;

    /** 甲方联系人 */
    @Excel(name = "甲方联系人")
    private String partyAContactPerson;

    /** 甲方联系人职位 */
    @Excel(name = "甲方联系人职位")
    private String partyAContactPosition;

    /** 甲方联系人电话 */
    @Excel(name = "甲方联系人电话")
    private String partyAContactPhone;

    /** 甲方联系人邮箱 */
    @Excel(name = "甲方联系人邮箱")
    private String partyAContactEmail;

    /** 乙方信息 */
    @Excel(name = "乙方信息")
    private String partyB;

    /** 乙方联系人 */
    @Excel(name = "乙方联系人")
    private String partyBContactPerson;

    /** 乙方联系人职位 */
    @Excel(name = "乙方联系人职位")
    private String partyBContactPosition;

    /** 乙方联系人电话 */
    @Excel(name = "乙方联系人电话")
    private String partyBContactPhone;

    /** 乙方联系人邮箱 */
    @Excel(name = "乙方联系人邮箱")
    private String partyBContactEmail;

    /** 经手人 */
    @Excel(name = "经手人")
    private String handler;

    /** 经手人电话 */
    @Excel(name = "经手人电话")
    private String handlerPhone;

    /** 合同图片（JSON数组，存储图片路径） */
    @Excel(name = "合同图片", readConverterExp = "J=SON数组，存储图片路径")
    private String images;

    /** 文件 */
    @Excel(name = "文件")
    private String files;

    /** 排序字段 */
    @Excel(name = "排序字段")
    private Long sortOrder;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 合同内容 */
    @Excel(name = "合同内容")
    private String contractContent;

    public void setContractId(Long contractId)
    {
        this.contractId = contractId;
    }

    public Long getContractId()
    {
        return contractId;
    }
    public void setPlaceId(Long placeId)
    {
        this.placeId = placeId;
    }

    public Long getPlaceId()
    {
        return placeId;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setContractAmount(BigDecimal contractAmount)
    {
        this.contractAmount = contractAmount;
    }

    public BigDecimal getContractAmount()
    {
        return contractAmount;
    }
    public void setMaintenanceFrequency(String maintenanceFrequency)
    {
        this.maintenanceFrequency = maintenanceFrequency;
    }

    public String getMaintenanceFrequency()
    {
        return maintenanceFrequency;
    }
    public void setPartyA(String partyA)
    {
        this.partyA = partyA;
    }

    public String getPartyA()
    {
        return partyA;
    }
    public void setPartyAContactPerson(String partyAContactPerson)
    {
        this.partyAContactPerson = partyAContactPerson;
    }

    public String getPartyAContactPerson()
    {
        return partyAContactPerson;
    }
    public void setPartyAContactPosition(String partyAContactPosition)
    {
        this.partyAContactPosition = partyAContactPosition;
    }

    public String getPartyAContactPosition()
    {
        return partyAContactPosition;
    }
    public void setPartyAContactPhone(String partyAContactPhone)
    {
        this.partyAContactPhone = partyAContactPhone;
    }

    public String getPartyAContactPhone()
    {
        return partyAContactPhone;
    }
    public void setPartyAContactEmail(String partyAContactEmail)
    {
        this.partyAContactEmail = partyAContactEmail;
    }

    public String getPartyAContactEmail()
    {
        return partyAContactEmail;
    }
    public void setPartyB(String partyB)
    {
        this.partyB = partyB;
    }

    public String getPartyB()
    {
        return partyB;
    }
    public void setPartyBContactPerson(String partyBContactPerson)
    {
        this.partyBContactPerson = partyBContactPerson;
    }

    public String getPartyBContactPerson()
    {
        return partyBContactPerson;
    }
    public void setPartyBContactPosition(String partyBContactPosition)
    {
        this.partyBContactPosition = partyBContactPosition;
    }

    public String getPartyBContactPosition()
    {
        return partyBContactPosition;
    }
    public void setPartyBContactPhone(String partyBContactPhone)
    {
        this.partyBContactPhone = partyBContactPhone;
    }

    public String getPartyBContactPhone()
    {
        return partyBContactPhone;
    }
    public void setPartyBContactEmail(String partyBContactEmail)
    {
        this.partyBContactEmail = partyBContactEmail;
    }

    public String getPartyBContactEmail()
    {
        return partyBContactEmail;
    }
    public void setHandler(String handler)
    {
        this.handler = handler;
    }

    public String getHandler()
    {
        return handler;
    }
    public void setHandlerPhone(String handlerPhone)
    {
        this.handlerPhone = handlerPhone;
    }

    public String getHandlerPhone()
    {
        return handlerPhone;
    }
    public void setImages(String images)
    {
        this.images = images;
    }

    public String getImages()
    {
        return images;
    }
    public void setFiles(String files)
    {
        this.files = files;
    }

    public String getFiles()
    {
        return files;
    }
    public void setSortOrder(Long sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder()
    {
        return sortOrder;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setContractContent(String contractContent)
    {
        this.contractContent = contractContent;
    }

    public String getContractContent()
    {
        return contractContent;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("title", getTitle())
            .append("status", getStatus())
            .append("contractId", getContractId())
            .append("placeId", getPlaceId())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("contractAmount", getContractAmount())
            .append("maintenanceFrequency", getMaintenanceFrequency())
            .append("partyA", getPartyA())
            .append("partyAContactPerson", getPartyAContactPerson())
            .append("partyAContactPosition", getPartyAContactPosition())
            .append("partyAContactPhone", getPartyAContactPhone())
            .append("partyAContactEmail", getPartyAContactEmail())
            .append("partyB", getPartyB())
            .append("partyBContactPerson", getPartyBContactPerson())
            .append("partyBContactPosition", getPartyBContactPosition())
            .append("partyBContactPhone", getPartyBContactPhone())
            .append("partyBContactEmail", getPartyBContactEmail())
            .append("handler", getHandler())
            .append("handlerPhone", getHandlerPhone())
            .append("images", getImages())
            .append("files", getFiles())
            .append("sortOrder", getSortOrder())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("contractContent", getContractContent())
            .toString();
    }

}
